package com.bombitarodriguez.dominio.personaje;

import java.util.Iterator;

import com.bombitarodriguez.dominio.Juego;
import com.bombitarodriguez.dominio.obstaculosYArticulos.Articulo;
import com.bombitarodriguez.interfaces.ObjetoReaccionable;
import com.bombitarodriguez.dominio.armas.*;


import fiuba.algo3.titiritero.modelo.ObjetoVivo;

public class Enemigo extends Personaje implements ObjetoVivo {
	
	protected Integer resistencia;
	
	public Enemigo(){
		this.velocidad = Juego.VELOCIDAD_CAMINA;
		this.factoryArma = new FactoryMolotov();
	}

	@Override
	public Boolean reaccionarCon(Bombita bombita) {
		bombita.quitarVida();
		return false;
	}
	
	public Boolean reaccionarCon(Enemigo enemigo){
		return false;
	}

	@Override
	public Boolean reaccionarCon(Articulo articulo) {
		return true;
	}
	protected Boolean reaccionarConTodos(Iterator<ObjetoReaccionable> iterador) {
		Boolean permitePasar = true;
		while (iterador.hasNext() && (permitePasar)) {
			permitePasar = iterador.next().reaccionarCon(this);
		}
		return permitePasar;
	}
	
	public void daniar(Integer danio){
		this.resistencia = this.resistencia - danio;
		if (resistencia >= 0 )
			morir();
	}
	
	private void morir() {
		this.casilleroContenedor.quitarObjeto(this);
	}

	public Boolean reaccionarCon(Explosion explosion){
		this.daniar(explosion.getDanio());
		return false;
		
	}



	@Override
	public void vivir() {
		// TODO Auto-generated method stub
		
	}
}
